﻿#ifndef FITKABSGEOMODELTWOCOINS_H
#define FITKABSGEOMODELTWOCOINS_H

#include "FITKInterfaceGeometryAPI.h"
#include "FITKAbsGeoCommand.h"

namespace Interface
{

    class FITKInterfaceGeometryAPI FITKAbsGeoModelTwoCoins:
        public FITKAbsGeoCommand
    {

    public:

        explicit FITKAbsGeoModelTwoCoins() = default;

        virtual ~FITKAbsGeoModelTwoCoins() = 0;

        void setLocation(double* p1);

        void getLocation(double* p1);

        void setDirection(double* dir);

        void getDirection(double* dir);

        void setRadius0(double r);

        double getRadius0() const;

        void setRadius1(double length);

        double getRadius1( ) const;

        void setRadius2(double length);

        double getRadius2( ) const;

        void setRadius3(double length);

        double getRadius3( ) const;

        void setHeight(double length);

        double getHeight( ) const;

        void setLength(double length);

        double getLength( ) const;

        FITKGeoEnum::FITKGeometryComType getGeometryCommandType() override;

    protected:
        /**
         * @brief 端面圆心坐标
         * @author
         * @date
         */
        double _location[3] = { 0,0,0 };
        /**
         * @brief 轴线方向
         * @author
         * @date
         */
        double _direction[3] = { 0,0,0 };
        /**
         * @brief 半径R0
         * @author
         * @date
         */
        double _radius0{ 0 };
        /**
         * @brief 半径R1
         * @author
         * @date
         */
        double _radius1{ 0 };
        /**
         * @brief 半径R2
         * @author
         * @date
         */
        double _radius2{ 0 };
        /**
         * @brief 半径R3
         * @author
         * @date
         */
        double _radius3{ 0 };
        /**
         * @brief 厚度
         * @author
         * @date
         */
        double _height{ 0 };
        /**
         * @brief 间隙
         * @author
         * @date
         */
        double _length{ 0.01 };
    };
}




#endif // FITKABSGEOMODELTWOCOINS_H
